python炒股可行吗 您所在的位置:网站首页 python 可以用来炒股吗 python炒股可行吗

python炒股可行吗

2024-07-05 02:57| 来源: 网络整理| 查看: 265

由于小编并无深厚的数学功底也无深厚的金融知识, 所以不会在本文中引用各种高深的投资模型或数学模型。

交易系统

这里的交易系统不一定是程序,只是指你自己的交易原则或者遵守的一些技巧或者方法,你可以手动执行也可以借助编程语言,编程语言不就是一套用来使用的工具么。

建立一个完善的交易体系,我们至少应该思考一下六个方面。

1、市场----买卖什么

2、头寸规模----买卖多少

3、入市----何时买入

4、止损----何时退出亏损的头寸

5、止盈----何时退出盈利的头寸

6、离市----何时离市

简单的示例

买卖A股

全仓

当日涨幅超过3%买入。

当持有头寸亏损超过3%,平仓

当日跌幅大于3%或者三个连续阴线

分析: 这个交易策略其实只有在行情以波浪形状向上的行情时候才能获利,如果是盘整的情况下,怕是会亏的很惨。这里之所以写的这么简单粗暴是为了后面策略测试撸代码简单。

数据获取及处理

因为这里说的是用python炒股,所以应该采用程序的方式去获取数据,如果人工炒股,下载任何股票行情软件都是可以的,但是人工的执行是需要花费比较多的精力的。

而python语言中用于获取股票行情数据的库,最有名莫过于tushare了。

这里以上证乐视的股票为例吧。

python环境安装

安装Anaconda(python2版本)

注:如果没安装过这个环境的经验,就百度或者谷歌一下吧,如果不是安装anaconda则需要艰难的自行解决依赖。

安装tushare

pip install tushare

获取行情数据

import pandas as pd

import tushare as ts

# 通过股票代码获取股票数据,这里没有指定开始及结束日期

df = ts.get_k_data("300104")

# 查看前十条数据

df.head()

# 查看后十条数据

df.tail()

# 将数据的index转换成date字段对应的日期

df.index = pd.to_datetime(df.date)

# 将多余的date字段删除

df.drop("date", inplace=True, axis=1)

注:关于股票数据的相关处理需要由pandas,matplotlib的知识,参考:http://pandas.pydata.org/pandas-docs/version/0.20/10min.html

计算常用指标

# 计算5,15,50日的移动平均线, MA5, MA15, MA50

days = [5, 15, 50]

for ma in days:

column_name = "MA{}".format(ma)

df[column_name] = pd.rolling_mean(df.close, ma)

# 计算浮动比例

df["pchange"] = df.close.pct_change()

# 计算浮动点数

df["change"] = df.close.diff()

最终处理完成后的结果如下:

df.head()

Out[13]:

open close high low volume code MA5 MA15 MA50 \

date

2013-11-29 9.396 9.741 9.870 9.389 146587.0 300104 NaN NaN NaN

2013-12-02 9.298 8.768 9.344 8.768 177127.0 300104 NaN NaN NaN

2013-12-03 8.142 8.414 8.546 7.890 176305.0 300104 NaN NaN NaN

2013-12-04 8.391 8.072 8.607 8.053 120115.0 300104 NaN NaN NaN

2013-12-05 7.983 7.366 8.108 7.280 253764.0 300104 8.4722 NaN NaN

pchange change

date

2013-11-29 NaN NaN

2013-12-02 -0.099887 -0.973

2013-12-03 -0.040374 -0.354

2013-12-04 -0.040647 -0.342

可视化走势图

所谓一图胜前言,将数据可视化可以非常直观的感受到股票的走势。

个人觉得,如果用程序炒股还是应该一切都量化的,不应该有过多的主观观点,如果过于依赖直觉或者当时心情,那么实在没必要用程序分析了。

df[["close", "MA5", "MA15", "MA50"]].plot(figsiz=(10,18))

效果如下:

用python炒股

k线图

import matplotplib.pyplot as plt

from matplotlib.daet import DateFormatter

from matplotlib.finance impor



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有